// types/taskdata.ts
// 数据管理类型定义（关联项目）

/**
 * 数据采集方法
 */
export type CollectionMethod = 
  | "manual" // 手动采集
  | "automatic" // 自动采集
  | "sensor" // 传感器采集
  | "remote" // 远程采集

/**
 * 数据类型（针对中国农业大学信息电气学院的农业信息化需求）
 */
export type DataType = 
  | "spectral" // 光谱数据（高光谱、多光谱成像）
  | "image" // 图像数据
  | "sensor" // 传感器数据（土壤、气象、植物生理）
  | "weather" // 气象数据（温度、湿度、降雨、光照）
  | "soil" // 土壤数据（养分、pH、水分、物理性质）
  | "disease" // 病虫害数据（病害识别、损失评估）
  | "yield" // 产量数据（产量预测、品质检测）
  | "others" // 其他数据
/**
 * 数据管理记录
 */
export interface DataRecord {
  /** 数据ID */
  id: string
  /** 项目ID */
  project_id: string
  /** 数据名称 */
  name: string
  /** 数据描述 */
  description: string
  /** 数据类型 */
  type: DataType
  /** 采集地点 */
  location: string
  /** 采集时间 */
  collection_date: string
  /** 数据负责人 */
  owner: string
  /** 作物类型 */
  crop_type?: string
  /** 采集方法 */
  collection_method?: CollectionMethod
  /** 数据大小（字节） */
  size?: number
  /** 数据记录数 */
  record_count?: number
  /** 附件列表 */
  attachments: DataFile[]
  /** 数据标签 */
  tags?: string[]
  /** 备注信息 */
  notes?: string
  /** 创建时间 */
  created_at: string
  /** 更新时间 */
  updated_at: string
}

/**
 * 数据文件
 */
export interface DataFile {
  /** 文件ID */
  id: string
  /** 文件名 */
  filename: string
  /** 文件类型 */
  file_type: string
  /** 文件大小（字节） */
  size: number
  /** 文件路径 */
  path: string
  /** 上传时间 */
  uploaded_at: string
}

/**
 * 数据查询过滤器
 */
export interface DataFilters {
  /** 项目ID */
  project_id?: string
  /** 数据类型 */
  type?: DataType
  /** 负责人 */
  owner?: string
  /** 作物类型 */
  crop_type?: string
  /** 时间范围 */
  date_range?: {
    start: string
    end: string
  }
  /** 地点 */
  location?: string
  /** 关键词搜索 */
  search?: string
}

/**
 * 创建数据记录请求
 */
export interface CreateDataRequest {
  /** 项目ID */
  project_id: string
  /** 数据名称 */
  name: string
  /** 数据描述 */
  description: string
  /** 数据类型 */
  type: DataType
  /** 采集地点 */
  location: string
  /** 采集时间 */
  collection_date: string
  /** 作物类型 */
  crop_type?: string
  /** 附件文件 */
  attachments?: File[]
}

/**
 * 更新数据记录请求
 */
export interface UpdateDataRequest extends Partial<CreateDataRequest> {
}

/**
 * 数据响应
 */
export interface DataResponse {
  message: string
  data: DataRecord
}

/**
 * 数据列表响应
 */
export interface DataListResponse {
  message: string
  records: DataRecord[]
  total: number
  page: number
  page_size: number
}

/**
 * 文件上传响应
 */
export interface FileUploadResponse {
  message: string
  files: DataFile[]
}

/**
 * 错误响应
 */
export interface DataErrorResponse {
  message: string
  code?: string
  errors?: Record<string, string[]>
}

/**
 * 数据统计接口
 */
export interface DataStatistics {
  /** 总数据记录数 */
  total_records: number
  /** 按类型分组的统计 */
  by_type: Array<{
    type: DataType
    count: number
    percentage: number
  }>
  /** 按日期分组的统计 */
  by_date: Array<{
    date: string
    count: number
  }>
}

/**
 * 数据导入请求
 */
export interface DataImportRequest {
  /** 文件列表 */
  files: File[]
  /** 项目ID */
  project_id: string
  /** 导入配置 */
  config?: {
    /** 是否覆盖已存在的数据 */
    overwrite: boolean
    /** 数据映射规则 */
    mapping?: Record<string, string>
  }
}

/**
 * 批量操作请求
 */
export interface BatchOperationRequest {
  /** 操作类型 */
  operation: 'delete' | 'update' | 'archive'
  /** 目标数据ID列表 */
  record_ids: string[]
  /** 更新数据（仅在update操作时使用） */
  update_data?: Partial<DataRecord>
}